package iedcyt.acute.dataAccess.idao.acute1;


import iedcyt.acute.dataAccess.domain.acute1.Doc_Sign;
import iedcyt.acute.dataAccess.idao.IDao;

import java.util.List;




public interface IDoc_SignDao extends IDao {

	void insert(Doc_Sign doc);
	
	void update(Doc_Sign doc);
/**
 * Obtiene los Doc_Sign por ids e indicando si queremos todo, solo rps o todo sin rps
 * @param ids
 * @param rps_bool true: devuelve solo los rps, false: devuelve todos menos los rps, null: devuelve todos con rps
 * @return
 */
	List<Doc_Sign> selectByIdDocSign(int[] ids, Boolean rps_bool);
	/**
	 * @param ids
	 * @param withoutRps a true quita los RPs (solo deja los SignPosition <> -1), a false los deja
	 * @return listado de DocSign
	 */
	List<Doc_Sign> selectByIdSign(int[] ids, boolean withoutRps);
	/**
	 * @param ids
	 * @param rps true: devuelve solo los rps, false: devuelve todos menos los rps, null: devuelve todos con rps
	 * @return listado de DocSign
	 */
	List<Doc_Sign> selectByIdDoc(int[] ids, Boolean rps);
	List<Doc_Sign> selectByIdDocAndSignPos(int idDoc, int signPos);
	List<Doc_Sign> selectByIdDocAndIdSign(int[] idDocs, int idSign);
	
	List<Doc_Sign> selectAll();
	
	int selectMaxId();

	void deleteAll();

	void delete(int id);

	void updateIdSign(int oldIdSign, int newIdSign);

	/**
	 * Obtiene el listado de Doc_Sign para firmas no clasificadas de un documento
	 * @param idDoc: documento
	 * @return
	 */
	List<Doc_Sign> selectNonClassify(int idDoc);

	void create();



}

